package com.huimingpay.transaction.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 
 * @TableName payment_bill
 */
@TableName(value ="payment_bill")
public class PaymentBill implements Serializable {
    /**
     * 
     */
    @TableId
    private Long id;

    /**
     * 商户id
     */
    private Long merchantId;

    /**
     * 商户名称
     */
    private String merchantName;

    /**
     * 商户应用Id
     */
    private Long merchantAppId;

    /**
     * 商户订单号
     */
    private String merchantOrderNo;

    /**
     * 渠道订单号
     */
    private String channelOrderNo;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 创建时间
     */
    private String createTime;

    /**
     * 交易时间
     */
    private String posTime;

    /**
     * 终端号
     */
    private String equipmentNo;

    /**
     * 用户账号/标识信息
     */
    private String userAccount;

    /**
     * 订单金额
     */
    private BigDecimal totalAmount;

    /**
     * 实际交易金额
     */
    private BigDecimal tradeAmount;

    /**
     * 折扣金额
     */
    private BigDecimal discountAmount;

    /**
     * 手续费
     */
    private BigDecimal serviceFee;

    /**
     * 退款单号
     */
    private String refundOrderNo;

    /**
     * 
     */
    private BigDecimal refundMoney;

    /**
     * 平台支付渠道
     */
    private String platformChannel;

    /**
     * 备注
     */
    private String remark;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 
     */
    public Long getId() {
        return id;
    }

    /**
     * 
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 商户id
     */
    public Long getMerchantId() {
        return merchantId;
    }

    /**
     * 商户id
     */
    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    /**
     * 商户名称
     */
    public String getMerchantName() {
        return merchantName;
    }

    /**
     * 商户名称
     */
    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    /**
     * 商户应用Id
     */
    public Long getMerchantAppId() {
        return merchantAppId;
    }

    /**
     * 商户应用Id
     */
    public void setMerchantAppId(Long merchantAppId) {
        this.merchantAppId = merchantAppId;
    }

    /**
     * 商户订单号
     */
    public String getMerchantOrderNo() {
        return merchantOrderNo;
    }

    /**
     * 商户订单号
     */
    public void setMerchantOrderNo(String merchantOrderNo) {
        this.merchantOrderNo = merchantOrderNo;
    }

    /**
     * 渠道订单号
     */
    public String getChannelOrderNo() {
        return channelOrderNo;
    }

    /**
     * 渠道订单号
     */
    public void setChannelOrderNo(String channelOrderNo) {
        this.channelOrderNo = channelOrderNo;
    }

    /**
     * 商品名称
     */
    public String getProductName() {
        return productName;
    }

    /**
     * 商品名称
     */
    public void setProductName(String productName) {
        this.productName = productName;
    }

    /**
     * 创建时间
     */
    public String getCreateTime() {
        return createTime;
    }

    /**
     * 创建时间
     */
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    /**
     * 交易时间
     */
    public String getPosTime() {
        return posTime;
    }

    /**
     * 交易时间
     */
    public void setPosTime(String posTime) {
        this.posTime = posTime;
    }

    /**
     * 终端号
     */
    public String getEquipmentNo() {
        return equipmentNo;
    }

    /**
     * 终端号
     */
    public void setEquipmentNo(String equipmentNo) {
        this.equipmentNo = equipmentNo;
    }

    /**
     * 用户账号/标识信息
     */
    public String getUserAccount() {
        return userAccount;
    }

    /**
     * 用户账号/标识信息
     */
    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }

    /**
     * 订单金额
     */
    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    /**
     * 订单金额
     */
    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    /**
     * 实际交易金额
     */
    public BigDecimal getTradeAmount() {
        return tradeAmount;
    }

    /**
     * 实际交易金额
     */
    public void setTradeAmount(BigDecimal tradeAmount) {
        this.tradeAmount = tradeAmount;
    }

    /**
     * 折扣金额
     */
    public BigDecimal getDiscountAmount() {
        return discountAmount;
    }

    /**
     * 折扣金额
     */
    public void setDiscountAmount(BigDecimal discountAmount) {
        this.discountAmount = discountAmount;
    }

    /**
     * 手续费
     */
    public BigDecimal getServiceFee() {
        return serviceFee;
    }

    /**
     * 手续费
     */
    public void setServiceFee(BigDecimal serviceFee) {
        this.serviceFee = serviceFee;
    }

    /**
     * 退款单号
     */
    public String getRefundOrderNo() {
        return refundOrderNo;
    }

    /**
     * 退款单号
     */
    public void setRefundOrderNo(String refundOrderNo) {
        this.refundOrderNo = refundOrderNo;
    }

    /**
     * 
     */
    public BigDecimal getRefundMoney() {
        return refundMoney;
    }

    /**
     * 
     */
    public void setRefundMoney(BigDecimal refundMoney) {
        this.refundMoney = refundMoney;
    }

    /**
     * 平台支付渠道
     */
    public String getPlatformChannel() {
        return platformChannel;
    }

    /**
     * 平台支付渠道
     */
    public void setPlatformChannel(String platformChannel) {
        this.platformChannel = platformChannel;
    }

    /**
     * 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        PaymentBill other = (PaymentBill) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getMerchantId() == null ? other.getMerchantId() == null : this.getMerchantId().equals(other.getMerchantId()))
            && (this.getMerchantName() == null ? other.getMerchantName() == null : this.getMerchantName().equals(other.getMerchantName()))
            && (this.getMerchantAppId() == null ? other.getMerchantAppId() == null : this.getMerchantAppId().equals(other.getMerchantAppId()))
            && (this.getMerchantOrderNo() == null ? other.getMerchantOrderNo() == null : this.getMerchantOrderNo().equals(other.getMerchantOrderNo()))
            && (this.getChannelOrderNo() == null ? other.getChannelOrderNo() == null : this.getChannelOrderNo().equals(other.getChannelOrderNo()))
            && (this.getProductName() == null ? other.getProductName() == null : this.getProductName().equals(other.getProductName()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getPosTime() == null ? other.getPosTime() == null : this.getPosTime().equals(other.getPosTime()))
            && (this.getEquipmentNo() == null ? other.getEquipmentNo() == null : this.getEquipmentNo().equals(other.getEquipmentNo()))
            && (this.getUserAccount() == null ? other.getUserAccount() == null : this.getUserAccount().equals(other.getUserAccount()))
            && (this.getTotalAmount() == null ? other.getTotalAmount() == null : this.getTotalAmount().equals(other.getTotalAmount()))
            && (this.getTradeAmount() == null ? other.getTradeAmount() == null : this.getTradeAmount().equals(other.getTradeAmount()))
            && (this.getDiscountAmount() == null ? other.getDiscountAmount() == null : this.getDiscountAmount().equals(other.getDiscountAmount()))
            && (this.getServiceFee() == null ? other.getServiceFee() == null : this.getServiceFee().equals(other.getServiceFee()))
            && (this.getRefundOrderNo() == null ? other.getRefundOrderNo() == null : this.getRefundOrderNo().equals(other.getRefundOrderNo()))
            && (this.getRefundMoney() == null ? other.getRefundMoney() == null : this.getRefundMoney().equals(other.getRefundMoney()))
            && (this.getPlatformChannel() == null ? other.getPlatformChannel() == null : this.getPlatformChannel().equals(other.getPlatformChannel()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getMerchantId() == null) ? 0 : getMerchantId().hashCode());
        result = prime * result + ((getMerchantName() == null) ? 0 : getMerchantName().hashCode());
        result = prime * result + ((getMerchantAppId() == null) ? 0 : getMerchantAppId().hashCode());
        result = prime * result + ((getMerchantOrderNo() == null) ? 0 : getMerchantOrderNo().hashCode());
        result = prime * result + ((getChannelOrderNo() == null) ? 0 : getChannelOrderNo().hashCode());
        result = prime * result + ((getProductName() == null) ? 0 : getProductName().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getPosTime() == null) ? 0 : getPosTime().hashCode());
        result = prime * result + ((getEquipmentNo() == null) ? 0 : getEquipmentNo().hashCode());
        result = prime * result + ((getUserAccount() == null) ? 0 : getUserAccount().hashCode());
        result = prime * result + ((getTotalAmount() == null) ? 0 : getTotalAmount().hashCode());
        result = prime * result + ((getTradeAmount() == null) ? 0 : getTradeAmount().hashCode());
        result = prime * result + ((getDiscountAmount() == null) ? 0 : getDiscountAmount().hashCode());
        result = prime * result + ((getServiceFee() == null) ? 0 : getServiceFee().hashCode());
        result = prime * result + ((getRefundOrderNo() == null) ? 0 : getRefundOrderNo().hashCode());
        result = prime * result + ((getRefundMoney() == null) ? 0 : getRefundMoney().hashCode());
        result = prime * result + ((getPlatformChannel() == null) ? 0 : getPlatformChannel().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", merchantId=").append(merchantId);
        sb.append(", merchantName=").append(merchantName);
        sb.append(", merchantAppId=").append(merchantAppId);
        sb.append(", merchantOrderNo=").append(merchantOrderNo);
        sb.append(", channelOrderNo=").append(channelOrderNo);
        sb.append(", productName=").append(productName);
        sb.append(", createTime=").append(createTime);
        sb.append(", posTime=").append(posTime);
        sb.append(", equipmentNo=").append(equipmentNo);
        sb.append(", userAccount=").append(userAccount);
        sb.append(", totalAmount=").append(totalAmount);
        sb.append(", tradeAmount=").append(tradeAmount);
        sb.append(", discountAmount=").append(discountAmount);
        sb.append(", serviceFee=").append(serviceFee);
        sb.append(", refundOrderNo=").append(refundOrderNo);
        sb.append(", refundMoney=").append(refundMoney);
        sb.append(", platformChannel=").append(platformChannel);
        sb.append(", remark=").append(remark);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}